package data;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Vector;


import model.LiquidacionExpensas;


public class AdmPersistLiquidacionExpensas {

	private static AdmPersistLiquidacionExpensas instancia;
	
	private AdmPersistLiquidacionExpensas(){
		
	}
	
	public static AdmPersistLiquidacionExpensas getInstancia(){
		if (instancia == null)
			instancia = new AdmPersistLiquidacionExpensas();
		return instancia;
	}
	
	public LiquidacionExpensas buscarLiquidacionExpensas(int nroLiquidacionExp){
		try {
			LiquidacionExpensas le = null;
			Connection con = PoolConnection.getPoolConnection().getConnection();
			PreparedStatement s = con.prepareStatement("select fecha,total from seminario.dbo.LiquidacionesExpensas where numero = ?");
			s.setInt(1, nroLiquidacionExp);
			ResultSet result = s.executeQuery();
			while (result.next())
			{
				Date fecha = result.getDate(1);
				Calendar cal = new GregorianCalendar();
				cal.setTime(fecha);
				float total = result.getFloat(2);
								
				le = new LiquidacionExpensas(nroLiquidacionExp, cal, total);
			}
			PoolConnection.getPoolConnection().realeaseConnection(con);
			return le;
		} catch (Exception e) {
			System.out.println();
		}
		return null;
	}
	
	public Vector<LiquidacionExpensas> selectAll(int nroConsorcio){
		try
		{
			Vector<LiquidacionExpensas>rta = new	Vector<LiquidacionExpensas>();
			Connection con = PoolConnection.getPoolConnection().getConnection();
			PreparedStatement s = con.prepareStatement("select numero,fecha,total from seminario.dbo.LiquidacionesExpensas where nroConsorcio = ?");
			s.setInt(1, nroConsorcio);
			ResultSet result = s.executeQuery();
			while (result.next()){
				
				int numero = result.getInt(1);
				Date fecha = result.getDate(2);
				Calendar cal = new GregorianCalendar();	
				cal.setTime(fecha);
				float total = result.getFloat(3);
								
				LiquidacionExpensas a = new LiquidacionExpensas(numero,cal,total);
				rta.add(a);
				
			}
			PoolConnection.getPoolConnection().realeaseConnection(con);
			return rta;
			
			
		}catch (Exception e)
		{
			System.out.println("Error al leer la base de datos");
			System.out.println("Stack Trace al escribir la Base de datos: " + e.getStackTrace());
		}
		return null;
	}
}
